<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
	
	    <base href="<%=basePath%>">
	    
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<meta http-equiv="pragma" content="no-cache">
		<meta http-equiv="cache-control" content="no-cache">
		<meta http-equiv="expires" content="0">    
		<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
		<meta http-equiv="description" content="This is my page">
		<link rel="stylesheet" type="text/css" href="<%=basePath%>/easyui/themes/default/easyui.css" />
		<link rel="stylesheet" type="text/css" href="<%=basePath%>/easyui/themes/icon.css" />
		<link rel="stylesheet" type="text/css" href="<%=basePath%>/css/index.css" />
		<title>index Page</title>
	
	</head>

	<body>
		<table id="user"></table>
		
		<div id="user_tool" style="padding:5px;">
			<div style="margin-bottom:5px;">
				<a href="#" class="easyui-linkbutton" iconCls="icon-add-new" plain="true" onclick="user_tool.add();">添加</a>
				<a href="#" class="easyui-linkbutton" iconCls="icon-edit-new" plain="true" onclick="user_tool.edit();">修改</a>
				<a href="#" class="easyui-linkbutton" iconCls="icon-delete-new" plain="true" onclick="user_tool.remove();">删除</a>
				<a href="#" class="easyui-linkbutton" iconCls="icon-reload" plain="true"  onclick="user_tool.reload();">刷新</a>
				<a href="#" class="easyui-linkbutton" iconCls="icon-redo" plain="true" onclick="user_tool.redo();">取消选择</a>
				<a href="#" class="easyui-linkbutton" iconCls="icon-no" plain="true" onclick="user_tool.cancle();">注销用户</a>	
			</div>
			
			<div style="padding:0 0 0 7px;color:#333;">
				<form id="search">
					<p>
						查询姓名：<input type="text" class="textbox" name="userNameSearch" style="width:110px">
						身份证号：<input type="text" class="textbox" name="idCardSearch" style="width:110px">
						查询邮箱：<input type="text" class="textbox" name="emailSearch" style="width:110px">
						创建时间从：<input type="text" name="date_from" class="easyui-datebox" editable="false" style="width:110px">
						到：<input type="text" name="date_to" class="easyui-datebox" editable="false" style="width:110px">
						<a href="#" class="easyui-linkbutton" iconCls="icon-search" onclick="user_tool.search();">查询</a>
					</p>
				</form>
			</div>
		</div>
		<form id="user_add" style="margin:0;padding:5px 0 0 90px;color:#333;">
			<p>用户名称：<input type="text" name="userName" class="textbox" style="width:200px;"></p>
			<p>身份证号：<input type="text" name="idCard" class="textbox" style="width:200px;"></p>
			<p>用户性别：
				<select id="userSex" style="width:200px">
					<option/>
					<option value="0">女</option>
					<option value="1">男</option>
				</select>
			</p>
			<p>用户角色：<input class="easyui-combobox" id="roles" name="roles" style="width:205px;"></p>
			<p>用户电话：<input type="text" name="telephone" class="textbox" style="width:200px;"></p>
			<p>用户生日：<input id="birthday" name="birthday" style="width:205px"></p>
			<p>用户地址：<input id="address" name="address" class="textbox" style="width:200px"></p>
			<p>用户邮箱： <input type="text" id= "email" name="email" class="textbox" style="width:195px;"></p>
		</form>
		
		<form id="user_edit" style="text-align:center; margin:0;padding:5px 0 0 25px;color:#333;" >
			<input type="hidden" name="userId_edit" class="textbox" style="width:200px;">
			<input type="hidden" id="erollTime_edit" name="erollTime_edit" class="textbox" style="width:200px;">
			<input type="hidden" id="loginTime_edit" name="loginTime_edit" class="textbox" style="width:200px;">
			<p><input type="hidden" id="password_edit" name="password_edit" class="textbox" style="width:200px;"></p>
			<p>用户名称：<input type="text" name="userName_edit" readonly="readonly" class="textbox" style="width:200px;"></p>
			<p>重置密码：
				<select id="reset_password" style="width:200px">
					<option value="0">否</option>
					<option value="1">是</option>
				</select>
			</p>
			<p>身份证号：<input type="text" name="idCard_edit" class="textbox" style="width:200px;"></p>
			<p>用户性别：
				<select id="userSex_edit" style="width:200px">
					<option/>
					<option value="0">女</option>
					<option value="1">男</option>
				</select>
			</p>
			<p>用户角色：<input class="easyui-combobox" id="roles_edit" name="roles_edit" style="width:205px;"></p>
			<p>用户电话：<input type="text" name="telephone_edit" class="textbox" style="width:200px;"></p>
			<p>用户生日：<input id="birthday_edit" name="birthday_edit" style="width:205px"></p>
			<p>所在地址：<input type="text" id="address_edit" name="address_edit" class="textbox" style="width:200px;"></p>
			<p>用户邮箱： <input type="text" id= "email_edit" name="email_edit" class="textbox" style="width:200px;"></p>
		</form>
		
		<form id="user_cancle" style="text-align:center; margin:0;padding:5px 0 0 25px;color:#333;" >
			<p>无登录时限：
				<select id="longDate" style="width:200px">
					<option value="3">3个月以上</option>
					<option value="6">6个月以上</option>
					<option value="12">一年以上</option>
				</select>
			</p>
		</form>
		
		<script type="text/javascript" src="<%=basePath%>/easyui/jquery.min.js"></script>
		<script type="text/javascript" src="<%=basePath%>/easyui/jquery.easyui.min.js"></script>
		<script type="text/javascript" src="<%=basePath%>/easyui/locale/easyui-lang-zh_CN.js" ></script>
		<script type="text/javascript" >
		$.extend($.fn.validatebox.defaults.rules, {
			userNameRepetition : {
			     validator: function (value) {
			    	 var b = "0";
			    	 $.ajax({
			    	        type: "post",
			    	        dataType: "text",
			    	        async: false,
			    	        data :{
			    	        	name : value
			    	        },
			    	        url: "userAction!isExistUser",
			    	        success: function (data) {
			    	        	if(data > 0){
			    	        		b = "1";
			    	        	}
			    	        },
			    	    });
		                return (b=="1") ? true : false;
		         },
		    	message: '用户名已被占用' 
			},
		    equalTo: { 
		    	validator: function (value, param) { 
		    		return $(param[0]).val() == value;
		    	 }, 
		    	message: '两次输入的密码不一致' 
		    },
		    idCardRex : {
		    	validator: function(value){
		    		var rex=/^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;
		    		if(rex.test(value)){
		    			return true;
		    		} else{
		    		    return false;
		    		}
		    	},
		    	message: '请输入正确的身份证号'
		    },
		 	phoneRex: {
			    validator: function(value){
				    var rex=/^1[3-8]+\d{9}$/;
				    var rex2=/^((0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/;
				    var rex3 = /^\d{7,8}$/;
				    if(rex.test(value) || rex2.test(value) || rex3.test(value)) {
				      return true;
				    } else {
				       return false;
				    }
			    },
			    message: '请输入正确电话或手机格式'
		 	},
		    name : {// 验证中文  || 英文
		        validator : function(value) { 
		            return (/^[\Α-\￥]+$/i.test(value) || /^[A-Za-z]+$/i.test(value)); 
		        }, 
		        message : '请输入正确的中午或英文' 
		    }, 
		 
		 });

		$(function () {
			$('#birthday').datebox({
				editable : false
			});
			$('#birthday_edit').datebox({
				editable : false,
				 formatter: function(date){ 
					 return date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate();
				 }
			});
			
			$('#user').datagrid({
				url : 'userAction!getUserList',
				fit : true,
				fitColumns : true,
				striped : true,
				rownumbers : true,
				border : false,
				pagination : true,
				pageSize : 10,
				pageList : [5, 10, 15, 20, 25],
				pageNumber : 1,
				sortName : 'userId',
				sortOrder : 'desc',
				toolbar : '#user_tool',
				remoteSort:	false,
				columns : [[
					{
						field : 'ck',
						title : '自动编号',
						align:'center',
						width : 100,
						checkbox : true,
					},
					{
						field : 'userId',
						title : '用户编号',
						align:'center',
						width : 100,
						sortable : true,
						hidden : true
					},
					{
						field : 'userName',
						title : '用户姓名',
						width : 100,
						align:'center',
						sortable : true
					},
					{
						field : 'idCard',
						title : '身份证号',
						width : 100,
						align:'center',
						sortable : true
					},
					{
						field : 'userSex',
						title : '性别',
						width : 100,
		  				sortable : true,
		  				align:'center',
		  				formatter : function (value, rowData, rowIndex) {
						  if(value == 0){
						  	  return '女';
						  }else if(value == 1){
						  	  return '男';
						  }
						}
					},
					{
						field : 'erollTime',
						title : '创建日期',
						width : 100,
						align:'center',
		  				sortable : true,
		  				formatter : function (value, rowData, rowIndex) {
							  if(value != null){
							  		var date = new Date(value);
							  	  	return  date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();
							  }
						}
					},
					{
						field : 'telephone',
						title : '用户电话',
						align:'center',
						width : 100,
						sortable : true
					},
					{
						field : 'birthday',
						title : '用户生日',
						align:'center',
						width : 100,
						sortable : true,
						formatter : function (value, rowData, rowIndex) {
							  if(value != null){
							  		var date = new Date(value);
							  	  	return  date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();
							  }
						}
					},
					{
						field : 'address',
						title : '所在地址',
						align:'center',
						width : 100,
						sortable : true,
					},
					{
						field : 'email',
						title : '用户邮箱',
						align:'center',
						width : 100,
						sortable : true
					},{
						field : 'loginTime',
						title : '最近登陆',
						width : 100,
						align:'center',
		  				sortable : true,
		  				formatter : function (value, rowData, rowIndex) {
							  if(value != null){
							  		var date = new Date(value);
							  	  	return  date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();
							  }
						}
					},
				]]
			});

			$('#user_add').dialog({
				width : 450,
				algin : 'center',
				title : '新增用户',
				modal : true,
				closed : true,
				iconCls : 'icon-user-add',
				buttons : [{
					text : '提交',
					iconCls : 'icon-add-new',
					handler : function () {
						if ($('#user_add').form('validate')) {
							
							$.ajax({
								url : 'userAction!addUser',
								type : 'post',
								data : {
									userName : $('input[name="userName"]').val(),
									//password : $('input[name="password"]').val(),
									idCard : $('input[name="idCard"]').val(), 
									userSex : $('#userSex').combobox('getValue'),
									roles : function (){
										var ids = $('#roles').combobox('getValues');
										return ids.join(',');
									},
									telephone : $('input[name="telephone"]').val(),
									birthday : $('input[name="birthday"]').val(),
									email : $('input[name="email"]').val(),
									address : $('input[name="address"]').val(),
								},
								beforeSend : function () {
									$.messager.progress({
										text : '正在新增中...'
									});
								},
								success : function (data, response, status) {
									$.messager.progress('close');
									
									if (data > 0) {
										$.messager.show({
											title : '提示',
											msg : '新增管理成功'
										});
										$('#user_add').dialog('close').form('reset');
										$('#user').datagrid('reload');
									} else {
										$.messager.alert('新增失败！', '未知错误导致失败，请重试！', 'warning');
									}
								}
							});
						}
					}
				},{
					text : '取消',
					iconCls : 'icon-redo',
					handler : function () {
						$('#user_add').dialog('close').form('reset');
					}
				}]
			});
			
		    //新增下拉列表显示用户角色  
		    $('#roles').combobox({  
		    	url : 'roleAction!getAllRole',
		    	method:'post',
				multiple:true,
		    	required : true,
		    	missingMessage : '请选择用户拥有的角色',
		        editable:false, 
		        panelHeight:'auto',
		        valueField:'roleId',     
		        textField:'roleName'  
		    }); 
		    
			//新增管理帐号
			$('input[name="userName"]').validatebox({
				required : true,
				validType :  [
		  			'length[2,30]',
					'userNameRepetition'
				],
				missingMessage : '请输入管理名称',
			});
			
			//新增身份证号
			$('input[name="idCard"]').validatebox({
				required : true,
				validType :  [
		  			'length[18,18]',
					'idCardRex'
				],
				missingMessage : '请输入身份证号',
			});
			/*新增管理密码
			$('input[name="password"]').validatebox({
				required : true,
				validType : 'length[6,30]',
				missingMessage : '请输入管理密码',
				invalidMessage : '管理密码在 6-30 位'
			});
			//新增确认管理密码
			$('input[name="repassword"]').validatebox({
				required : true,
				validType : 'equalTo["#password"]',
				missingMessage : '请输入确认密码',
				invalidMessage : '两次密码不一致'
			});*/
		
			//新增性别 
			$('#userSex').combobox({
				editable:false,
				panelHeight:'auto'
			});
			
			//新增联系方式
			$('input[name="telephone"]').validatebox({
				validType : 'phoneRex',
			});
			// 新增用户邮箱
			$('input[name="email"]').validatebox({
			    required : true,
				validType : 'email',
				missingMessage : '请输入邮箱',
			});
			
			//修改
			$('#user_edit').dialog({
				width : 350,
				title : '修改管理',
				modal : true,
				closed : true,
				iconCls : 'icon-user-add',
				buttons : [{
					text : '提交',
					iconCls : 'icon-edit-new',
					handler : function () {
						if ($('#user_edit').form('validate')) {
							$.ajax({
									url : 'userAction!updateUser',
									type : 'post',
									data : {
										userId   : $('input[name="userId_edit"]').val(),
										userName : $('input[name="userName_edit"]').val(),
										password : $('input[name="password_edit"]').val(),
										idCard : $('input[name="idCard_edit"]').val(), 
										userSex : $('#userSex_edit').combobox('getValue'),
										reset_password : $('#reset_password').combobox('getValue'),
										erollTime_edit : $('input[name="erollTime_edit"]').val(),
										loginTime_edit : $('input[name="loginTime_edit"]').val(),
										roles_edit : function (){
											var ids = $('#roles_edit').combobox('getValues');
											return ids.join(',');
										},
										telephone : $('input[name="telephone_edit"]').val(),
										address   : $('input[name="address_edit"]').val(),
										birthday : $('input[name="birthday_edit"]').val(),
										email : $('input[name="email_edit"]').val()
									},
									beforeSend : function () {
										$.messager.progress({
											text : '正在修改中...'
										});
									},
									success : function (data, response, status) {
										
										$.messager.progress('close');
										if (data > 0) {
											$.messager.show({
												title : '提示',
												msg : '修改用户成功'
											});
											$('#user_edit').dialog('close').form('reset');
											$('#user').datagrid('reload');
										} else {
											$.messager.alert('修改失败！', '未知错误导致失败，请重试！', 'warning');
										}
									}
								});
						}
					}
				},{
					text : '取消',
					iconCls : 'icon-redo',
					handler : function () {
						$('#user_edit').dialog('close').form('reset');
					}
				}]
			});
			
			//修改角色分配
		    $('#roles_edit').combobox({  
		    	url : 'roleAction!getAllRole',
		    	method:'post',
				multiple:true,
		    	required : true,
		    	missingMessage : '请选择用户拥有的角色',
		        editable:false, 
		        panelHeight:'auto',
		        valueField:'roleId',     
		        textField:'roleName'  
		    }); 
		    

			$('input[name="idCard_edit"]').validatebox({
				required : true,
				validType :  [
		  			'length[18,18]',
					'idCardRex'
				],
				missingMessage : '请输入身份证号',
			});
			//修改性别
			$('#userSex_edit').combobox({
				editable:false,
				panelHeight:'auto'
			});
			//是否重置密码
			$('#reset_password').combobox({
				editable:false,
				panelHeight:'auto'
			});
			//修改联系方式
			$('input[name="telephone_edit"]').validatebox({
				validType : 'phoneRex'
			});
			//修改用户邮箱
			$('input[name="email_edit"]').validatebox({
				required : true,
				validType : 'email',
				missingMessage : '请输入邮箱',
			});
			
			
			//注销用户
			$('#user_cancle').dialog({
				width : 350,
				title : '修改管理',
				modal : true,
				closed : true,
				iconCls : 'icon-user-add',
				buttons : [{
					text : '注销',
					iconCls : 'icon-edit-new',
					handler : function () {
						if ($('#user_cancle').form('validate')) {
							$.ajax({
									url : 'userAction!cancleUser',
									type : 'post',
									data : {
										longDate : $('#longDate').combobox('getValue'),
									},
									beforeSend : function () {
										$.messager.progress({
											text : '正在处理中...'
										});
									},
									success : function (data, response, status) {
										
										$.messager.progress('close');
										if (data > 0) {
											$.messager.show({
												title : '提示',
												msg : data + '用户注销成功'
											});
											$('#user_cancle').dialog('close').form('reset');
											$('#user').datagrid('reload');
										} else if(data == 0){
											$.messager.alert('提示！', '系統沒有在你所注销的用戶', 'warning');
											$('#user_cancle').dialog('close').form('reset');
											$('#user').datagrid('reload');
										} else{
											$.messager.alert('注销失败！', '未知错误导致失败，请重试！', 'warning');
										}
									}
								});
						}
					}
				},{
					text : '取消',
					iconCls : 'icon-redo',
					handler : function () {
						$('#user_cancle').dialog('close').form('reset');
					}
				}]
			});
			
			$('#longDate').combobox({
				editable:false,
				panelHeight:'auto'
			});
			//按钮事件
			user_tool = {
				//刷新
				reload : function () {
					$('#user').datagrid('reload');
				},
				//撤销
				redo : function () {
					$('#user').datagrid('unselectAll');
					$('#search').form('clear');
				},
				//添加
				add : function () {
					$('#user_add').dialog('open');
					$('input[name="userName"]').focus();
				},
				//注销用户
				cancle : function () {
					$('#user_cancle').dialog('open');
					$('#longDate').focus();
				},
				//搜索
				search : function () {
					$('#user').datagrid('load', {
						emailSearch : $.trim($('input[name="emailSearch"]').val()),
						userNameSearch : $.trim($('input[name="userNameSearch"]').val()),
						idCardSearch : $.trim($('input[name="idCardSearch"]').val()),
						date_from : $.trim($('input[name="date_from"]').val()),
						date_to : $.trim($('input[name="date_to"]').val()),
					});
				},
				//删除
				remove : function () {
					var rows = $('#user').datagrid('getSelections');
					if (rows.length > 0) {
						$.messager.confirm('确定操作', '您正在要删除所选的记录吗？', function (flag) {
							if (flag) {
								var ids = [];
								for (var i = 0; i < rows.length; i ++) {
									ids.push(rows[i].userId);
								}
								$.ajax({
									type : 'POST',
									url : 'userAction!deleteUser',
									data : {
										ids : ids.join(',')
									},
									beforeSend : function () {
										$('#user').datagrid('loading');
									},
									success : function (data) {
										if(data == 0){
											//$('#user').datagrid('loaded');
											$('#user').datagrid('reload');
											$('#user').datagrid('unselectAll');
											$.messager.alert('删除失败！', '存在超级管理员或者自己，没权限删除，请重新选择！', 'warning');
										} else if (data > 0) {
											//$('#user').datagrid('loaded');
											$('#user').datagrid('reload');
											$('#user').datagrid('unselectAll');
											$.messager.show({
												title : '提示',
												msg : data + '个用户被删除成功！',
											});
										} else{
											$('#user').datagrid('reload');
											$('#user').datagrid('unselectAll');
											$.messager.alert('删除失败！', '未知错误导致失败，请重试！', 'warning');
										}
									}
								});
							}
						});
					} else {
						$.messager.alert('提示', '请选择要删除的记录！', 'info');
					}
				},
				//编辑
				edit : function () {
						var rows = $('#user').datagrid('getSelections');
						if (rows.length > 1) {
							$.messager.alert('警告操作！', '编辑记录只能选定一条数据！', 'warning');
						} else if (rows.length == 1) {
							$.ajax({
								url : 'userAction!getUserByUserId',
								type : 'post',
								data : {
									userId : rows[0].userId
								},
								beforeSend : function () {
									$.messager.progress({
										text : '正在获取中...'
									});
								},
								success : function (data, response, status) {
									$.messager.progress('close');
									if (data) {
										var obj = $.parseJSON(data);
										var date = new Date(obj.user.birthday);
										var tt = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
										$('#birthday_edit').datebox('setValue',tt);
										if(tt == 'NaN-NaN-NaN NaN:NaN:NaN'){
											tt = '';
										}
										
										var date0 = new Date(obj.user.loginTime);
										var tt0 = date0.getFullYear() + '-' + (date0.getMonth() + 1) + '-' + date0.getDate() + ' ' + date0.getHours() + ":" + date0.getMinutes() + ":" + date0.getSeconds();
										if(tt0 == 'NaN-NaN-NaN NaN:NaN:NaN'){
											tt0 = '';
										}
										
										var date1 = new Date(obj.user.erollTime);
										var tt1 = date1.getFullYear() + '-' + (date1.getMonth() + 1) + '-' + date1.getDate() + ' ' + date1.getHours() + ":" + date1.getMinutes() + ":" + date1.getSeconds();
										if(tt1 == 'NaN-NaN-NaN NaN:NaN:NaN'){
											tt1 = '';
										}
										
										$('#user_edit').form('load', {
											loginTime_edit : tt0,
											erollTime_edit : tt1,
											userId_edit    : obj.user.userId,
											userName_edit  : obj.user.userName,
											idCard_edit  : obj.user.idCard,
											password_edit  : obj.user.password,
											telephone_edit : obj.user.telephone,
											address_edit  : obj.user.address,
												email_edit  : obj.user.email
										}).dialog('open');
										
										$('#userSex_edit').combobox('setValue',obj.userSex);
										//$('#userSex_edit').combobox('setText',obj.userSexName);
										
										$('#roles_edit').combobox('setValues',obj.roleIds);
										 
									} else {
										$.messager.alert('获取失败！', '未知错误导致失败，请重试！', 'warning');
									}
								}
							});
						} else if (rows.length == 0) {
							$.messager.alert('警告操作！', '编辑记录至少选定一条数据！', 'warning');
						}
					}
				};
		});
		</script>
	</body>
</html>